﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;

namespace TP2.Lib
{
     [Serializable]
    public class FlotaBombarderos : Flota
    {
        const int TAMANIO_MIN_FLOTA = 1,
                  CANTIDAD_REBOTES = 20;

        
        public FlotaBombarderos(double[] posicion, int cantAviones, List<ElementoJuego> vehiculosAliados, int[] dimensiones)
            : base(posicion, cantAviones) 
        {
            if (cantAviones >= TAMANIO_MIN_FLOTA)
            {
                int cant = 0; 
              
                /*creo el primer avion y le digo q va a ser el guia*/
                Bombardero primerBombardero = new Bombardero(posicion, CANTIDAD_REBOTES, vehiculosAliados, dimensiones);
                primerBombardero.EsGuia = true;

                double xPosInicial = primerBombardero.Posicion[0];
                double yPosInicial = primerBombardero.Posicion[1];
                double[] posicionCadaBombardero = new double[3];

                while (cant < cantAviones) /*'<' porque ya el primer avion lo cree afuera*/
                { 
                    cant++;
                    posicionCadaBombardero[0] = xPosInicial;
                    yPosInicial = yPosInicial - (primerBombardero.Radio * 2);
                    posicionCadaBombardero[1] = yPosInicial;
                    posicionCadaBombardero[2] = 0;

                    Bombardero unBombardero = new Bombardero(posicionCadaBombardero, CANTIDAD_REBOTES, vehiculosAliados, dimensiones);
                    unBombardero.FlotaALaQuePertenece = this;
                    this.Aviones.Add(unBombardero);
                }                
            }
            else
            {
                throw new Exception("La flota no contiene la cantidad minima de aviones");
                // Tratar Excepcion
            }
        }
    }
}
